import request from '../request';

/**
 * 获取动态列表
 * @param {Object} data - 查询参数
 * @returns {Promise} - 返回请求Promise
 */
export function getMomentsList(data) {
  return request({
    url: '/api/moments/list',
    method: 'post',
    data
  });
}

/**
 * 获取热门话题
 * @returns {Promise} - 返回请求Promise
 */
export function getHotTopics() {
  return request({
    url: '/api/moments/hotTopics',
    method: 'get'
  });
}

/**
 * 回复动态
 * @param {Object} params - 回复参数
 * @param {String} params.momentId - 动态ID
 * @param {String} params.replyUserId - 被回复用户ID
 * @param {String} params.replyUserName - 被回复用户名称
 * @param {String} params.content - 回复内容
 * @returns {Promise} - 返回请求Promise
 */
export function replyToMoment(params) {
  return request({
    url: '/api/moments/reply',
    method: 'post',
    data: params
  });
}

/**
 * 发布评论
 * @param {Object} data - 评论数据
 * @returns {Promise} - 返回请求Promise
 */
export function postComment(data) {
  return request({
    url: '/api/moments/reply',
    method: 'post',
    data
  });
}

/**
 * 获取动态详情
 * @param {String} momentId - 动态ID
 * @returns {Promise} - 返回请求Promise
 */
export function getMomentDetail(momentId) {
  return request({
    url: `/api/moments/detail/${momentId}`,
    method: 'get'
  });
}

/**
 * 点赞动态
 * @param {String} momentId - 动态ID
 * @returns {Promise} - 返回请求Promise
 */
export function likeMoment(momentId) {
  return request({
    url: '/api/moments/like',
    method: 'post',
    data: {
      momentId
    }
  });
}

/**
 * 取消点赞动态
 * @param {String} momentId - 动态ID
 * @returns {Promise} - 返回请求Promise
 */
export function unlikeMoment(momentId) {
  return request({
    url: '/api/moments/unlike',
    method: 'post',
    data: {
      momentId
    }
  });
}

/**
 * 发布动态
 * @param {Object} data - 动态数据
 * @param {String} data.content - 动态内容
 * @param {Array} data.topics - 话题列表
 * @param {Array} data.images - 图片列表
 * @param {Object} data.location - 位置信息
 * @returns {Promise} - 返回请求Promise
 */
export function publishMoment(data) {
  return request({
    url: '/api/moments/publish',
    method: 'post',
    data
  });
}